package com.java.yz.day11.ketang;

import java.util.ArrayList;
import java.util.Iterator;

/*
    ArrayList
        去除集合中字符串的重复值(字符串的内容相同)
        去除集合中自定义对象的重复值(对象的成员变量值都相同)
 */
public class ListText1 {
    public static void main(String[] args) {
        ArrayList arrayList = new ArrayList();
        arrayList.add("hello");
        arrayList.add("world");
        arrayList.add("hive");
        arrayList.add("hello");
        arrayList.add("world");
        ArrayList arrayList1 = new ArrayList();
//        Iterator iterator = arrayList.iterator();
//        while (iterator.hasNext()){
//            String s = (String) iterator.next();
//            if (! arrayList1.contains(arrayList)){
//                arrayList1.add(s);
//            }
//        }
        for (int i = 0; i < arrayList.size(); i++) {
            String s = (String) arrayList.get(i);  //先要进行一个转型
            if (! arrayList1.contains(s)){   //不包含这个字符串的时候才会执行
               arrayList1.add(s);
           }
        }
        System.out.println(arrayList1);


        //去除集合中自定义对象的重复值(对象的成员变量值都相同)
        ArrayList arrayList2 = new ArrayList();//存放最开始的数据
        ArrayList arrayList3 = new ArrayList();  //创建一个新的集合存放不重复的

        Student s1 = new Student("张翰", 19);
        Student s2 = new Student("张勇", 20);
        Student s3 = new Student("张宇", 21);
        Student s4 = new Student("张翰", 19);

        arrayList2.add(s1);
        arrayList2.add(s2);
        arrayList2.add(s3);
        arrayList2.add(s4);
        System.out.println(arrayList2);
        for (int i = 0; i < arrayList2.size(); i++) {
            //先转型
            Student s = (Student) arrayList2.get(i);

            if (! arrayList3.contains(s)) {   //在自己定义一个类的时候，比较的是底层的equals()是父类Object的
                //所以我们就要重写equals()方法，这样就可以做到自定义对象去重
                arrayList3.add(s);
            }
        }
        System.out.println(arrayList3);
    }
}
